我有一个文本格式类似于此示例:
PAUL: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo >ligula eget dolor.
LEONARD: Aenean massa. Cum sociis natoque penatibus et magnis dis parturient >montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque >eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, >fringilla vel, aliquet nec, vulputate eget, arcu.
EVIL NINJA [on the roof]: In enim justo, rhoncus ut, imperdiet a, venenatis >vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. >Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. >Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim.
PAUL [SCREAMING]: Aliquam lorem ante, dapibus in, viverra quis, feugiat a, >tellus.
以及一个正则表达式来将脚本解析为对话框。你知道吗
[A-Z]+([:]|[ ]{1}[[][A-Z]*[]])
我试图捕获所有蝗虫,以便正则表达式匹配
"PAUL:",
"LEONARD [some context]:"
正如你所看到的here我没能捕获所有的蝗虫。你知道吗
EVIL NINJA [on the roof]:
我怎样才能捕捉到上面的内容呢?正则表达式是正确的方法吗?你知道吗
编辑:所有演讲者的名字都用大写字母表示,并以冒号结尾。这就是我处理的所有笔录的格式。你知道吗
正则表达式的问题是它不允许任何空格,所以它与“邪恶忍者”或“屋顶上”不匹配。你知道吗
但是是的,regex绝对是正确的方法。你可以试试这个:
用法:
输出:
我想你错的是你没有匹配
[]
中的小写字母,所以[on the roof]
不匹配。我已经将a-z
添加到character类中,现在它匹配了。另外,您不允许在角色名称中使用空格,因此我将开始改为[A-Z ]
。你知道吗try it here!
正则表达式
A-Z
可以更改为\w
(?:[\w ]+)
更改为([\w ]+)
代码
输出
相关问题 更多 >
编程相关推荐