如果我想从
中提取ABC<td>ABC</td>
和
<td id="id">ABC</td>
使用相同的正则表达式,我该怎么做?
<td[\s\S]*?>[\s\S]*?<\/td>
这符合这种情况,但我想在开头和结尾排除匹配的td标记。
答案 0 :(得分:1)
方法1:捕获组
<td[\s\S]*?>([\s\S]*?)<\/td>
将正则表达式的一部分括在您感兴趣的括号中,然后引用此capturing group(使用$1
或\1
作为后向引用,具体取决于正则表达式的风格)。 编辑:\1
使用\K
。
方法2: Lookbehind / lookahead
编辑: 在下面进行了修改,使用<td\b[^>]*>\K.*?(?=</td>)
代替可变长度的lookbehind - 在评论中归功于Jonny 5的优点。
package com.test.webservertest;
public class MainActivity extends ActionBarActivity
{
private static final int MY_DATA_CHECK_CODE = 0;
public static MainActivity currentActivity;
TextToSpeech mTts;
private String targetURL;
private String urlParameters;
private Button btnClick;
private String clicking = "clicked";
private String[] ipaddresses = new String[]{
"http://10.0.0.3:8098/?cmd=nothing"};
private String iptouse = "";
private TextView text;
private boolean connectedtoipsuccess = false;
private int counter = 0;
private NotificationCompat.Builder mbuilder;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButton();
currentActivity = this;
initTTS();
}
答案 1 :(得分:1)