Removing all leading numbers in strings

Get help with using AutoHotkey (v1.1 and older) and its commands and hotkeys
carno
Posts: 265
Joined: 20 Jun 2014, 16:48

Removing all leading numbers in strings

18 Mar 2017, 17:28

I have a list as follows. I would like to have a script that strips all the leading numbers (and any spaces, etc.) at the beginning of each line:

Code: Select all

1 Best Checking Account Bonuses
1.1 Citi $300 Bonus – No Direct Deposit Required
1.2 My Banking Direct $150 Bonus [Nationwide Excluding AZ, FL, NY, NJ or OH]
1.3 BMO Harris $200 Bonus
1.4 Chase Premier $300 Checking Bonus
1.5 Charles Schwab $100 Bonus
1.6 Christian Community Credit Union – $200 Bonus – Must Be A Member of A Christian Ministry
2 Best Saving Account Bonuses
2.1 Capital one 360 Money Market $200 Bonus
2.2 CIT Bank Up To $200 Bonus
3 Best Business Bank Bonuses
3.1 Huntington Bank $500 – OH, MI, IN, PA, KY, WV, IL & WI
3.2 Hancock Whitney $400 Business Checking Bonus – LA, MS, FL, AL, TX
3.3 Bank of America $200 Business Checking Bonus – Nationwide
3.4 MB Financial Bank $350 Business Checking – IL, IN, or PA
3.5 Liberty Bank – $100 Business Checking Bonus – CT, MA, RI
4 Best State Specific Bonuses
4.1 M&T Bank AZ, CT, DC, DE, MD, NJ, NY, PA, VA, WV – Lots Of Stackable Bonuses
4.2 First Bank Financial Centre – $300 Checking Bonus – No Direct Deposit Required – WI only
4.3 Webster Bank $100/$350 Bonus – NY, MA, RI, and CT Only – No Direct Deposit Required
4.4 Bank Of Colorado $200 Checking Bonus – NM, NE, WY, CO – No Bonus Requirements
4.5 Pinnacle Bank $100 Bonus –  KS, MO, NE, IA, WY, CO – No Bonus Requirements
4.6  Ocean First Bank $300 Checking Bonus – NJ only
4.7 Huntington Bank $200 Checking Bonus – OH, MI, IN, PA, KY, WV, IL & WI – No Direct Deposit
4.8 Citadel Banking $250 Checking Bonus – PA Only – No Direct Deposit Required
4.9 PNC $300 Checking Bonus – AL, DC, DE, FL, GA, IL, IN, KY, MD, MI, MO, NC, NJ, NY, OH, PA, SC, VA, WI and WV
4.10 Associated Bank – $150 Bonus – No Direct Deposit – IL, MN, & WI only
4.11 Santander $225 Bonus – NH, MA, RI, CT, DE, NY, NJ & PA
4.12 Fifth Third $200 Checking Bonus FL, GA, IL, IN, KY, MI, MO, NC, OH, PA, TN, WV
4.13 FirstBank $200 Bonus – CA, AZ & CO
4.14 My Northwest Bank $200 Bonus – PA, NY, MD, OH only
4.15 First Tennessee $200/$250 Bonus – AL, AR, GA, KY, MS, NC, TN, VA
4.16 MB Financial Bank $250 IL, IN, or PA
4.17 Bank of The West $150/$300 – AZ, CA, CO, ID, IA, KS, MN, MO, NE, NV, NM, ND, OK, OR, SD, UT, WA, WI, WY
4.18 LegacyTexas $150 Checking Promotion – TX Only
4.19 Tech CU $150 Bonus – CA only
4.20 Stoneham Bank $130 Checking Bonus – MA only
4.21 GESA Credit Union $100 Bonus – WA only – No Bonus Requirements
4.22 Popular Community Bank $125 Bonus – South FL, NY, NJ
4.23 Liberty Bank – $100 Checking Bonus – CT, MA, RI
5 Highly Region Specific/Branch Specific
5.1 Five Star Bank $250 Bonus Rochester, NY Branch Only
5.2 Sacramento Credit Union $100 Checking Bonus – Select CA Areas Only
6 Recent Changes
so that the result should look like this:

Code: Select all

Best Checking Account Bonuses
Citi $300 Bonus – No Direct Deposit Required
My Banking Direct $150 Bonus [Nationwide Excluding AZ, FL, NY, NJ or OH]
BMO Harris $200 Bonus
Chase Premier $300 Checking Bonus
Charles Schwab $100 Bonus
Christian Community Credit Union – $200 Bonus – Must Be A Member of A Christian Ministry
Best Saving Account Bonuses
Capital one 360 Money Market $200 Bonus
CIT Bank Up To $200 Bonus
Best Business Bank Bonuses
Huntington Bank $500 – OH, MI, IN, PA, KY, WV, IL & WI
Hancock Whitney $400 Business Checking Bonus – LA, MS, FL, AL, TX
Bank of America $200 Business Checking Bonus – Nationwide
MB Financial Bank $350 Business Checking – IL, IN, or PA
Liberty Bank – $100 Business Checking Bonus – CT, MA, RI
Best State Specific Bonuses
M&T Bank AZ, CT, DC, DE, MD, NJ, NY, PA, VA, WV – Lots Of Stackable Bonuses
First Bank Financial Centre – $300 Checking Bonus – No Direct Deposit Required – WI only
Webster Bank $100/$350 Bonus – NY, MA, RI, and CT Only – No Direct Deposit Required
Bank Of Colorado $200 Checking Bonus – NM, NE, WY, CO – No Bonus Requirements
Pinnacle Bank $100 Bonus –  KS, MO, NE, IA, WY, CO – No Bonus Requirements
Ocean First Bank $300 Checking Bonus – NJ only
Huntington Bank $200 Checking Bonus – OH, MI, IN, PA, KY, WV, IL & WI – No Direct Deposit
Citadel Banking $250 Checking Bonus – PA Only – No Direct Deposit Required
PNC $300 Checking Bonus – AL, DC, DE, FL, GA, IL, IN, KY, MD, MI, MO, NC, NJ, NY, OH, PA, SC, VA, WI and WV
Associated Bank – $150 Bonus – No Direct Deposit – IL, MN, & WI only
Santander $225 Bonus – NH, MA, RI, CT, DE, NY, NJ & PA
Fifth Third $200 Checking Bonus FL, GA, IL, IN, KY, MI, MO, NC, OH, PA, TN, WV
FirstBank $200 Bonus – CA, AZ & CO
My Northwest Bank $200 Bonus – PA, NY, MD, OH only
First Tennessee $200/$250 Bonus – AL, AR, GA, KY, MS, NC, TN, VA
MB Financial Bank $250 IL, IN, or PA
Bank of The West $150/$300 – AZ, CA, CO, ID, IA, KS, MN, MO, NE, NV, NM, ND, OK, OR, SD, UT, WA, WI, WY
LegacyTexas $150 Checking Promotion – TX Only
Tech CU $150 Bonus – CA only
Stoneham Bank $130 Checking Bonus – MA only
GESA Credit Union $100 Bonus – WA only – No Bonus Requirements
Popular Community Bank $125 Bonus – South FL, NY, NJ
Liberty Bank – $100 Checking Bonus – CT, MA, RI
Highly Region Specific/Branch Specific
Five Star Bank $250 Bonus Rochester, NY Branch Only
Sacramento Credit Union $100 Checking Bonus – Select CA Areas Only
Recent Changes
Nightwolf85
Posts: 302
Joined: 05 Feb 2017, 00:03

Re: Removing all leading numbers in strings

18 Mar 2017, 17:46

I would read the file, then go through one line at a time and use RegexReplace to remove any numbers from the beginning of the line.

Something like:

Code: Select all

newLines := ""
Loop, Read, InputFile      ; Read in the file one line at a time.
	newLines .= RegexReplace(A_Loopfield, "^[0-9. ]+(?=\w)")  . "`n"  ; This Regex should remove any leading numbers and spaces from the line and append it to newLines
Then you can

Code: Select all

FileDelete, InputFile
FileAppend, %newLines%, InputFile
If you want to save to the same file.


Loop read file:
https://autohotkey.com/docs/commands/LoopReadFile.htm

RegexReplace:
https://autohotkey.com/docs/commands/RegExReplace.htm
wolf_II
Posts: 2688
Joined: 08 Feb 2015, 20:55

Re: Removing all leading numbers in strings

18 Mar 2017, 18:25

Another attempt at this:
  • You can use InStr() and SubStr() for this simple problem.
  • Make sure the first space character is actually the correct "splitting" point.
  • Suppose the day after tomorrow, you find a new entry like 3.6 7Up Bank ... or similar.

Code: Select all

List =
(
1 Best Checking Account Bonuses
1.1 Citi $300 Bonus – No Direct Deposit Required
1.2 My Banking Direct $150 Bonus [Nationwide Excluding AZ, FL, NY, NJ or OH]
1.3 BMO Harris $200 Bonus
1.4 Chase Premier $300 Checking Bonus
1.5 Charles Schwab $100 Bonus
1.6 Christian Community Credit Union – $200 Bonus – Must Be A Member of A Christian Ministry
2 Best Saving Account Bonuses
2.1 Capital one 360 Money Market $200 Bonus
2.2 CIT Bank Up To $200 Bonus
3 Best Business Bank Bonuses
3.1 Huntington Bank $500 – OH, MI, IN, PA, KY, WV, IL & WI
3.2 Hancock Whitney $400 Business Checking Bonus – LA, MS, FL, AL, TX
3.3 Bank of America $200 Business Checking Bonus – Nationwide
3.4 MB Financial Bank $350 Business Checking – IL, IN, or PA
3.5 Liberty Bank – $100 Business Checking Bonus – CT, MA, RI
4 Best State Specific Bonuses
4.1 M&T Bank AZ, CT, DC, DE, MD, NJ, NY, PA, VA, WV – Lots Of Stackable Bonuses
4.2 First Bank Financial Centre – $300 Checking Bonus – No Direct Deposit Required – WI only
4.3 Webster Bank $100/$350 Bonus – NY, MA, RI, and CT Only – No Direct Deposit Required
4.4 Bank Of Colorado $200 Checking Bonus – NM, NE, WY, CO – No Bonus Requirements
4.5 Pinnacle Bank $100 Bonus –  KS, MO, NE, IA, WY, CO – No Bonus Requirements
4.6  Ocean First Bank $300 Checking Bonus – NJ only
4.7 Huntington Bank $200 Checking Bonus – OH, MI, IN, PA, KY, WV, IL & WI – No Direct Deposit
4.8 Citadel Banking $250 Checking Bonus – PA Only – No Direct Deposit Required
4.9 PNC $300 Checking Bonus – AL, DC, DE, FL, GA, IL, IN, KY, MD, MI, MO, NC, NJ, NY, OH, PA, SC, VA, WI and WV
4.10 Associated Bank – $150 Bonus – No Direct Deposit – IL, MN, & WI only
4.11 Santander $225 Bonus – NH, MA, RI, CT, DE, NY, NJ & PA
4.12 Fifth Third $200 Checking Bonus FL, GA, IL, IN, KY, MI, MO, NC, OH, PA, TN, WV
4.13 FirstBank $200 Bonus – CA, AZ & CO
4.14 My Northwest Bank $200 Bonus – PA, NY, MD, OH only
4.15 First Tennessee $200/$250 Bonus – AL, AR, GA, KY, MS, NC, TN, VA
4.16 MB Financial Bank $250 IL, IN, or PA
4.17 Bank of The West $150/$300 – AZ, CA, CO, ID, IA, KS, MN, MO, NE, NV, NM, ND, OK, OR, SD, UT, WA, WI, WY
4.18 LegacyTexas $150 Checking Promotion – TX Only
4.19 Tech CU $150 Bonus – CA only
4.20 Stoneham Bank $130 Checking Bonus – MA only
4.21 GESA Credit Union $100 Bonus – WA only – No Bonus Requirements
4.22 Popular Community Bank $125 Bonus – South FL, NY, NJ
4.23 Liberty Bank – $100 Checking Bonus – CT, MA, RI
5 Highly Region Specific/Branch Specific
5.1 Five Star Bank $250 Bonus Rochester, NY Branch Only
5.2 Sacramento Credit Union $100 Checking Bonus – Select CA Areas Only
6 Recent Changes
)

Loop, Parse, List, `n, `r
    Result .= SubStr(A_LoopField, InStr(A_LoopField, A_Space) + 1) "`n"

MsgBox, %Result%
PS: The entry 4.6 Ocean First Bank $300 Checking Bonus – NJ only misbehaves for my attempt.
Unfortunately, the forum software does not show the double spaces in there.
You could include LTrim() to fix this and drop the + 1:

Code: Select all

Loop, Parse, List, `n, `r
    Result .= LTrim(SubStr(A_LoopField, InStr(A_LoopField, A_Space))) "`n"
carno
Posts: 265
Joined: 20 Jun 2014, 16:48

Re: Removing all leading numbers in strings

18 Mar 2017, 19:30

Thanks very much! I tested and it works great.
Nightwolf85
Posts: 302
Joined: 05 Feb 2017, 00:03

Re: Removing all leading numbers in strings

18 Mar 2017, 20:35

To cover the case wolf_II brings up 3.6 7UP Bank that doesn't match correctly in my first code, you could use this RegexReplace instead: RegexReplace(A_Loopfield, "^[0-9. ]+(?=\b)")

All I did was replace the \w with a \b and that matches correctly in most cases I believe. Unless if it was 7 Up it would exclude the '7 ' still since its a number followed by a space.
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: Removing all leading numbers in strings

18 Mar 2017, 22:39

Code: Select all

List =
(
1 Best Checking Account Bonuses
1.1 Citi $300 Bonus – No Direct Deposit Required
1.2 My Banking Direct $150 Bonus [Nationwide Excluding AZ, FL, NY, NJ or OH]
1.3 BMO Harris $200 Bonus
1.4 Chase Premier $300 Checking Bonus
1.5 Charles Schwab $100 Bonus
1.6 Christian Community Credit Union – $200 Bonus – Must Be A Member of A Christian Ministry
2 Best Saving Account Bonuses
2.1 Capital one 360 Money Market $200 Bonus
2.2 CIT Bank Up To $200 Bonus
3 Best Business Bank Bonuses
3.1 Huntington Bank $500 – OH, MI, IN, PA, KY, WV, IL & WI
3.2 Hancock Whitney $400 Business Checking Bonus – LA, MS, FL, AL, TX
3.3 Bank of America $200 Business Checking Bonus – Nationwide
3.4 MB Financial Bank $350 Business Checking – IL, IN, or PA
3.5 Liberty Bank – $100 Business Checking Bonus – CT, MA, RI
4 Best State Specific Bonuses
4.1 M&T Bank AZ, CT, DC, DE, MD, NJ, NY, PA, VA, WV – Lots Of Stackable Bonuses
4.2 First Bank Financial Centre – $300 Checking Bonus – No Direct Deposit Required – WI only
4.3 Webster Bank $100/$350 Bonus – NY, MA, RI, and CT Only – No Direct Deposit Required
4.4 Bank Of Colorado $200 Checking Bonus – NM, NE, WY, CO – No Bonus Requirements
4.5 Pinnacle Bank $100 Bonus –  KS, MO, NE, IA, WY, CO – No Bonus Requirements
4.6  Ocean First Bank $300 Checking Bonus – NJ only
4.7 Huntington Bank $200 Checking Bonus – OH, MI, IN, PA, KY, WV, IL & WI – No Direct Deposit
4.8 Citadel Banking $250 Checking Bonus – PA Only – No Direct Deposit Required
4.9 PNC $300 Checking Bonus – AL, DC, DE, FL, GA, IL, IN, KY, MD, MI, MO, NC, NJ, NY, OH, PA, SC, VA, WI and WV
4.10 Associated Bank – $150 Bonus – No Direct Deposit – IL, MN, & WI only
4.11 Santander $225 Bonus – NH, MA, RI, CT, DE, NY, NJ & PA
4.12 Fifth Third $200 Checking Bonus FL, GA, IL, IN, KY, MI, MO, NC, OH, PA, TN, WV
4.13 FirstBank $200 Bonus – CA, AZ & CO
4.14 My Northwest Bank $200 Bonus – PA, NY, MD, OH only
4.15 First Tennessee $200/$250 Bonus – AL, AR, GA, KY, MS, NC, TN, VA
4.16 MB Financial Bank $250 IL, IN, or PA
4.17 Bank of The West $150/$300 – AZ, CA, CO, ID, IA, KS, MN, MO, NE, NV, NM, ND, OK, OR, SD, UT, WA, WI, WY
4.18 LegacyTexas $150 Checking Promotion – TX Only
4.19 Tech CU $150 Bonus – CA only
4.20 Stoneham Bank $130 Checking Bonus – MA only
4.21 GESA Credit Union $100 Bonus – WA only – No Bonus Requirements
4.22 Popular Community Bank $125 Bonus – South FL, NY, NJ
4.23 Liberty Bank – $100 Checking Bonus – CT, MA, RI
5 Highly Region Specific/Branch Specific
5.1 Five Star Bank $250 Bonus Rochester, NY Branch Only
5.2 Sacramento Credit Union $100 Checking Bonus – Select CA Areas Only
6 Recent Changes
)

;[0-9.]+ means consecutive characters that are a digit or a dot
;[0-9.]+? the ? makes it 'ungreedy'
;if the text uses CRLFs (and not LFs as in this case) remove '`n' from the RegEx needle
Result := RegExReplace(List, "`nm)^[0-9.]+? {1,2}") ;replace 1 or 2 consecutive spaces
;Result := RegExReplace(List, "`nm)^[0-9.]+? +") ;replace 1 or more consecutive spaces
Result := StrReplace(Result, "`n", "`r`n") "`r`n"
Clipboard := Result
MsgBox, %Result%
Return
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
carno
Posts: 265
Joined: 20 Jun 2014, 16:48

Re: Removing all leading numbers in strings

18 Mar 2017, 23:51

Thanks again! Great posts with pitfall tips and RegEx that could handle them.

Return to “Ask for Help (v1)”

Who is online

Users browsing this forum: Descolada and 319 guests