我剛剛拿起Android,但我的任務是幫助實習項目。使用Android模式和匹配類(正則表達式)
可以說我有下面的詳細信息:
Fonia Taylo
Product Manager
[email protected]
98706886
從我上面的細節,我想將它傳遞到一個類,由此我就可以使用正則表達式過濾掉的電子郵件地址,只有通過此過濾出的電子郵件地址爲EditText。
我搜索了很多關於正則表達式的教程,尤其是Android模式和匹配器類。
但是,我發現的所有示例僅用於驗證僅輸入到EditText字段的文本。
我需要做的是:
- 驗證如上圖所示
- 篩選出使用正則表達式的電子郵件地址(並刪除文本的其餘部分)
- 傳遞整個文本只有這個電子郵件地址到一個EditText
目前以下是我的課程:
public class RegexOCR1 extends Activity {
private Pattern pattern;
private Matcher matcher;
private String recognizedText, textToUse;
private static final String EMAIL_PATTERN =
"^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_createcontact);
// Getting the path of the image from another class
Bundle extras = this.getIntent().getExtras();
recognizedText = extras.getString("TEXT");
textToUse = recognizedText;
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.usetext);
showText();
//Log.i(TAG, "onConfigChanged");
}
private void showText(){
//Log.i(TAG, "ShowText");
Intent intent = new Intent(this, CreateContactActivityOCR.class);
startActivity(intent);
}
public EmailValidator() {
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(textToUse);
if (matcher.find())
{
String email = textToUse.substring(matcher.start(), matcher.end());
} else {
// TODO handle condition when input doesn't have an email address
}
}
public boolean validate(final String hex) {
matcher = pattern.matcher(hex);
return matcher.matches();
}
}
正如您所看到的,它幾乎不完整。我想將「textToUse」傳遞給正則表達式驗證,然後繼續執行上述的函數。
編輯:
以下方法後:
public EmailValidator() {
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(textToUse);
if (matcher.find())
{
String email = textToUse.substring(matcher.start(), matcher.end());
} else {
// TODO handle condition when input doesn't have an email address
}
}
其中提取出的電子郵件地址;然後我如何通過這個提取的電子郵件地址通過意圖EditText是在另一個類?
請讓我知道你如何改變我的代碼,如果有任何想法。謝謝!
非常感謝你的回覆〜我會測試一下:D –
Hi @kris larson,我用「textToUse」替換「inputString」嗎? –
是的,無論電子郵件內嵌字符串在什麼地方。 –