使用正则表达式捕获 2 个特殊字符之间的文本
Capture text between 2 special characters using regex
我正在尝试确定从以下示例字符串中的套件值中捕获文本的最佳正则表达式:
Floor: 05; Suite: CPO 5th Floor; Abbrv: CAN-ON-Toronto-CPO5; M9V 1H5
Floor: 05; Suite: CPO 5th Floor; Abbrv: CAN-ON-Toronto-CPO5; M9V 1H5
Floor: 04; Suite: CPO 4th Floor; Abbrv: CAN-ON-Toronto-CPO4; M9V 1H5
Floor: 2; Suite: SOC 2nd Floor; Abbrv: CAN-ON-Scarborough-SOC2; M1H 2X3
例如,我需要从上面的文本中捕获以下内容:
CPO 5th Floor
CPO 5th Floor
CPO 4th Floor
SOC 2nd Floor
基本上,我需要捕获Suite:
和;
之间的所有文本,不包括第一个空格。
我正在尝试在 Java 中执行此操作,但无法想出适用于多种场景的正则表达式。
String str = " Floor: 05; Suite: CPO 5th Floor; Abbrv: CAN-ON-Toronto-CPO5; M9V 1H5 "
+ " Floor: 05; Suite: CPO 5th Floor; Abbrv: CAN-ON-Toronto-CPO5; M9V 1H5 "
+ " Floor: 04; Suite: CPO 4th Floor; Abbrv: CAN-ON-Toronto-CPO4; M9V 1H5 "
+ " Floor: 2; Suite: SOC 2nd Floor; Abbrv: CAN-ON-Scarborough-SOC2; M1H 2X3";
// Pattern: Suite:[ ]*([^;]*);
// Which means:
// Suite: - first the string "Suite:"
// [ ]* - followed by any amount of whitespace
// ([^;]*) - then a capture group that will contain any
// amount of characters except ";"
// ; - then the character ;
Pattern pattern = Pattern.compile("Suite:[ ]*([^;]*);");
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
String match = matcher.group(1); // first capture group
System.out.println(match);
}
指纹:
CPO 5th Floor
CPO 5th Floor
CPO 4th Floor
SOC 2nd Floor
相关文章:
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- 使用json_encode通过xmlhttp.responseText发送特殊字符(即caron)
- 在搜索中考虑特殊字符的
- 避免键入一些特殊字符
- Regex测试特殊字符
- 在 Javascript 中对特殊字符进行排序 (æ)
- 必须检查长度,并在文本框中允许一些特殊字符
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 用于在Javascript中删除多个空格的特殊字符
- jQuery-Regex以防止任何特殊字符
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- 使用正则表达式捕获 2 个特殊字符之间的文本
- 捕获一组两个特殊字符之间的所有内容,但允许角色在正文中出现一次
- 根据长度(<4)提取特殊字符之间的子字符串,并将缺失的字符替换为0,使其为4
- 转义HTML和Javascript之间的特殊字符
- 匹配分隔符之间的特殊字符的正则表达式
- 尝试使用RegEx(在JS中)获得由两个终止符之间的特殊字符分隔的所有值
- 在两个页面之间传递带有html特殊字符的转义查询字符串
- Regex避免数字和特殊字符,并允许单词之间有空格