如何在java中拆分此字符串需要正则表达式?
我需要拆分此字符串:如何在java中拆分此字符串需要正则表达式?,java,regex,string,split,Java,Regex,String,Split,我需要拆分此字符串: COMITATO: TRIESTE Indirizzo legale: VIA REVOLTELLA 39 34139 Trieste (Trieste) Mob.: 3484503368 Fax: 040310096 Sito web: www.csentrieste.it/ 所需的结果必须是如下数组: {COMITATO:,TRIESTE,Indirizzo legale:,VIA REVOLTELLA 39 34139 Trieste (Trieste) ,Mo
COMITATO: TRIESTE Indirizzo legale: VIA REVOLTELLA 39 34139
Trieste (Trieste) Mob.: 3484503368 Fax: 040310096 Sito web: www.csentrieste.it/
所需的结果必须是如下数组:
{COMITATO:,TRIESTE,Indirizzo legale:,VIA REVOLTELLA 39 34139
Trieste (Trieste) ,Mob.:,3484503368,Fax:,Sito web:,www.csentrieste.it/}
问题还在于字符串的某些属性可能丢失,因此我无法使用诸如“COMITATO:”或“Indirizzo legale:”等属性的标题进行拆分
示例:如果“Indirizzo legale:”其缺少的字符串将显示为:
COMITATO: TRIESTE Mob.: 3484503368 Fax: 040310096 Sito web: www.csentrieste.it/
这个正则表达式将解析给定的输入:
(?<firstname>.*?):\s*(?<lastname>\w+)(?:(?<occupation>[^:]+):\s*(?<address>.+\n.+))?\sMob.:\s*(?<mobile>\d+)\s*Fax:\s*(?<fax>\d+)\s*Sito web:\s*(?<website>.*)
(?*?):\s*(?\w+)((?[^::+):\s*(?首先用空格分隔,然后用单词后跟:
,然后用空格分隔每个单词,将限制设置为2项。到目前为止,您尝试了什么?无法使用单词进行拆分,因为可能会有一些单词发生变化并且不存在。我指的不是特定的单词,而是任何单词。您熟悉吗?它们可以用在字符串中#split()
我知道我正在寻找正确的正则表达式sintax,但仍然存在一些单词有空格但不能像“VIA residella 39 34139 Trieste(Trieste)”那样分割的问题必须是1个单词我不提供按单词边界分割,我提供按空格分割,后跟一个单词,后跟一个冒号。这个条件可以使用lookahead轻松构建。