我希望能够从字符串中提取2个部分,这些部分可能由特定关键字分隔。如果关键字不在那里,则假设仅提供第一个关键字。提供更具体(更清晰)的例子:
'a key b'--->返回(a,b)
'a'(未标识'key'字符串)---> return(a,'')
我首先尝试使用正则表达式“(。)键(。)”这显然不适用于案例2 ...然后“(。)(键)?(。 )“但这不适用于案例1 ......我正在使用Python和findall()函数。
有什么想法吗?我觉得这与贪婪的“(。*)”有关,但无法弄明白。
非常感谢!
答案 0 :(得分:4)
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
public class LoginData {
WebDriver driver;
@Test
public void login() {
driver.findElement(By.linkText("Sign in")).click();
System.out.println("hello");
}
@BeforeTest
public void beforeTest() throws Exception {
WebDriver driver=new FirefoxDriver();
driver.get("https://www.gmail.com/intl/en/mail/help/about.html");
Thread.sleep(2000);
}
@AfterTest
public void fterTest() {
driver.close();
}
}
答案 1 :(得分:1)
'Simon said: stand up'
有什么问题?
string.split()
答案 2 :(得分:0)
拆分似乎很适合您的问题:
def extract(text):
return ([part.strip() for part in text.split("key", 1)] + [''])[:2]
for test in ["a key b", "a", "a key", "a longer example of key is this"]:
print extract(test)
这会给你以下结果:
['a', 'b']
['a', '']
['a', '']
['a longer example of', 'is this']
如果您真的希望使用正则表达式,可以使用以下内容来提供相同的结果:
def extract(text):
return re.search(r'(.*?)(?:\s+key|\Z)\s*(.*)', text).groups()