我目前正在创建一个正则表达式,以分割出符合以下格式的所有字符串:&[text(text - text text) !text]
。这里的文字可以是任何字母。间距很重要。文本将如下所示列出。
我尝试过以下正则表达式,但我似乎无法让它工作:
&\\[([^\\]]*)\\]
非常感谢任何帮助。
答案 0 :(得分:1)
您将text
替换为\w+
以捕获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]\]
PS - 我无法记住-
,&
或!
是否为正则表达式符号,如果是,您可以使用\-
,\&
{ {1}}或\!
。
P.P.S - 在java中,您必须转义\
,以便\w
成为字符串中的\\w
。
答案 1 :(得分:0)