[英]regex to find substring between special characters
我在Java中遇到了这个问题。
我的数据字符串包含&
和;
之间的实体;
例如
&Text.ABC;, &Links.InsertSomething;
这些实体可以是我们拥有的ini文件中的任何内容。
我需要在输入字符串中找到这些字符串并将其删除。 在输入字符串中可能没有这些实体,也可能没有一个或多个。
我正在尝试使用正则表达式来进行模式匹配和失败。
谁能建议这个问题的正则表达式?
谢谢!
这是正则表达式:
"&[A-Za-z]+(\\.[A-Za-z]+)*;"
它以匹配字符&
开头,后跟一个或多个字母(大写和小写)( [A-Za-z]+
)。 然后,它匹配一个点,后跟一个或多个字母( \\\\.[A-Za-z]+
)。 可以有任何数量,包括零。 最后,它匹配;
字符。
您可以像这样在Java中使用此正则表达式:
Pattern p = Pattern.compile("&[A-Za-z]+(\\.[A-Za-z]+)*;"); // java.util.regex.Pattern
String subject = "foo &Bar; baz\n";
String result = p.matcher(subject).replaceAll("");
要不就
"foo &Bar; baz\n".replaceAll("&[A-Za-z]+(\\.[A-Za-z]+)*;", "");
如果要在匹配的标记后删除空格,可以使用以下命令:
"&[A-Za-z]+(\\.[A-Za-z]+)*;\\s*" // the "\\s*" matches any number of whitespace
还有一个不错的在线正则表达式测试器,它使用java regexp库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.