我目前正在创建一个正则表达式,以拆分出与以下格式匹配的所有字符串:&[text(text - text text) !text]。这里的文本实际上可以是任何字符。而且间距也很重要。文本将如下所示列出。
我已经尝试了以下正则表达式,但似乎无法使其工作:
&\\[([^\\]]*)\\]任何帮助都将不胜感激。
发布于 2017-03-01 04:27:48
您可以用\w+替换text以捕获1个或多个单词字符。假设其他所有内容都是文字,下面的正则表达式应该可以工作:
&\[\w+\(\w+ - \w+ \w+\) !\w+\]
如果你愿意,你也可以用[a-zA-Z]代替\w。它有时更容易理解,因为它显式地描述了要匹配的字符,包括a-z和A-Z。
&\[[a-zA-Z]+\([a-zA-Z]+ - [a-zA-Z]+ [a-zA-Z]+\) ![a-zA-Z]+\]
并且仅对于一个字符,删除+
&\[\w\(\w - \w \w\) !\w\]
&\[[a-zA-Z]\([a-zA-Z] - [a-zA-Z] [a-zA-Z]\) ![a-zA-Z]\]
附注-我不记得-、&或!是否被视为正则表达式符号,如果它们是正则表达式符号,您可以使用\-、\&或\!将它们变为文字。
P.P.S -在java中,你必须对\进行转义,这样\w在字符串中就变成了\\w。
发布于 2017-03-01 05:07:00
https://stackoverflow.com/questions/42517938
复制相似问题