0

我不擅长 Java 正则表达式。

我有以下文字

[[image:testimage.png||height=\"481\" width=\"816\"]]

我想从上面的文本中提取 image: 、 height 和 width 。有人可以帮我写正则表达式来实现吗?

4

3 回答 3

1

如果这是您的确切字符串

[[image:testimage.png||height=\"481\" width=\"816\"]]

然后尝试以下(原油):

String input = // read your input string
String regex = ".*height=\\\\\"(\\d+)\\\\\" width=\\\\\"(\\d+)"
String result = input.replaceAll(regex, "$1 $2");
String[] height_width = result.split(" ")

这是一种方法,另一种(更好)是使用模式

于 2013-06-24T13:14:37.927 回答
1

此正则表达式将匹配属性及其关联值。您必须遍历它在源字符串中找到的每个匹配项,以获取所需的所有信息。

(\w+)[:=]("?)([\w.]+)\2

您有三个捕获组。您对其中两个感兴趣:

  • 第 1 组:属性的名称。(图像,高度,宽度......)
  • 第 3 组:财产的价值。

以下是正则表达式的细分:

(\w+)       #Group 1: Match the property name.
[:=]        #The property name/value separator.
("?)        #Group 2: The string delimiter.
([\w.]+)    #Group 3: The property value. (Accepts letters, numbers, underscores and periods)
\2          #The closing string delimiter if there was one.
于 2013-06-24T13:22:15.983 回答
1

试试这个正则表达式:

((?:image|height|width)\D+?([a-zA-Z\d\.\\"]+))

你会得到两组。

例如,

  1. 高度=\"481\"
  2. 481
于 2013-06-24T13:41:32.803 回答